前提
- Webサーバ
- ポート443でnginxが待ち受けている。
- cloudflare tunnelsを利用している。
発生する問題
nginxでアクセスログを記録する場合、リクエスト元が全てcloudflareのIPアドレスで記録されてしまうため、アクセスログとして残すには不十分である。
解決方法
cloudflareのネットワーク空間からのリクエストの場合、実際のIPアドレスを取得するようにする。
実際のIPアドレスはCF-Connecting-IP
ヘッダーに格納されている。
これを使うと便利。
https://github.com/ergin/nginx-cloudflare-real-ip